﻿// Copyright 2007-2008 Rory Plaire (codekaizen@gmail.com)

using System;

namespace NPack.Interfaces
{
    public interface ISingularValueDecomposition<T, TMatrix> : IFactorization<T, TMatrix>
        where T : IEquatable<T>, IComparable<T>, IComputable<T>, IConvertible
        where TMatrix : IMatrix<T>, IEquatable<TMatrix>, IComparable<TMatrix>, IComputable<TMatrix>
    {
        T Condition { get; }
        T[] GetDiagonal();
        T Norm2 { get; }
        Int32 Rank { get; }
    }
}